Crate ansi_colours
source ·Expand description
ansi_colours
converts between 24-bit sRGB colours and 8-bit colour palette
used by ANSI terminals such as xterm on rxvt-unicode in 256-colour mode.
The most common use case is when using 24-bit colours in a terminal emulator
which only support 8-bit colour palette. It allows true-colours to be
approximated by values supported by the terminal.
When mapping true-colour into available 256-colour palette, it tries to balance accuracy and performance. It doesn’t implement the fastest algorithm nor is it the most accurate, instead it uses a formula which should be fast enough and accurate enough for most use-cases.
§Cargo features
To facilitate better interoperability the crate defines rgb
crate
feature (enabled by default). It adds support for the RGB
type from
rgb
crate. Specifically, RGB8
(a.k.a. RGB<u8>
) as well as RGB16
(a.k.a. RGB<u16>
) types are
supported.
Furthermore, ansi_term
and termcolor
features are available. They
add support for Colour
type from ansi_term
crate and Color
type from
termcolor
crate respectively.
This includes support for calling ansi256_from_rgb
with arguments of
those types and implementation of ColourExt
trait which extends the
types with additional conversion methods.
§Usage
Using this library with Cargo projects is as simple as adding a single dependency:
[dependencies]
ansi_colours = "1.1"
and then using one of the two functions that the library provides:
use ansi_colours::*;
fn main() {
// Colour at given index:
println!("{:-3}: {:?}", 50, rgb_from_ansi256(50));
// Approximate true-colour by colour in the palette:
let rgb = rgb::RGB8 { r: 100, g: 200, b: 150 };
let index = ansi256_from_rgb(rgb);
println!("{:?} ~ {:-3} {:?}", rgb, index, rgb_from_ansi256(index));
}
Traits§
- Type which represents a colour convertible to sRGB. Used to provide overloaded versions of
ansi256_from_rgb
function. - Extension to types representing ANSI colours adding methods converting between RGB and indexed (a.k.a. fixed) representations.
Functions§
- Returns index of a colour in 256-colour ANSI palette approximating given shade of grey.
- Returns index of a colour in 256-colour ANSI palette approximating given sRGB colour.
- Returns sRGB colour corresponding to the index in the 256-colour ANSI palette.